package com.airticketbooking.config;

import com.airticketbooking.interceptor.JwtTokenAdminInterceptor;

import com.airticketbooking.interceptor.JwtTokenUserInterceptor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;


@Configuration
@Slf4j
public class WebMvcConfiguration extends WebMvcConfigurationSupport {

	@Autowired
	private JwtTokenAdminInterceptor jwtTokenAdminInterceptor;

	@Autowired
	private JwtTokenUserInterceptor jwtTokenUserInterceptor;


	/**
	 * 注册自定义拦截器
	 *
	 * @param registry
	 */
	protected void addInterceptors(InterceptorRegistry registry) {

		log.info("开始注册自定义拦截器...");
		registry.addInterceptor(jwtTokenAdminInterceptor)
				.addPathPatterns("/air/manager/**")
				.excludePathPatterns("/air/manager/employee/login",
						"/air/manager/employee/register");

		log.info("开始注册自定义拦截器...");
		registry.addInterceptor(jwtTokenUserInterceptor)
				.addPathPatterns("/air/user/**")
				.excludePathPatterns("/air/user/user/login", "/air/user/user/register");


	}


	/**
	 * 设置静态资源映射
	 *
	 * @param registry
	 */
	protected void addResourceHandlers(ResourceHandlerRegistry registry) {
		log.info("开始设置静态资源映射...");
		registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");
		registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
	}
}
